home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / windows / objdata.zip / TESTPROG.CPP < prev    next >
C/C++ Source or Header  |  1996-05-09  |  4KB  |  185 lines

  1. #include <iostream.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <windows.h>
  5.  
  6. #include "f_type.h"
  7.  
  8. #include "bdkernel.h"
  9.  
  10. void Message(char *c, int i) {
  11.         char *cc;
  12.  
  13.         cc = new char[strlen(c) + 20];
  14.         sprintf(cc,"%s: %d   \n",c,i);
  15.         MessageBox(NULL, cc, "Debug info.", MB_ICONINFORMATION|MB_TASKMODAL);
  16.         delete [] cc;
  17.         return;
  18. }
  19.  
  20. int main() {
  21.  
  22.             // some local variables
  23.             int status;                    // used to hold return values
  24.             const int StubID = 0;   // Must be zero
  25.             int FuncID;                    // Select the function number
  26.  
  27.             char c[100];                 // some strings
  28.             char d[100];
  29.             char e[100];
  30.             unsigned long Data[10];    // array used to pass all data
  31.  
  32.             struct str { int i; int j; float k; } mystr; // my user defined struct
  33.             struct str2{ int i; int j; float k; } mystr2;
  34.  
  35.             // fill in some data
  36.             mystr.i=12;
  37.             mystr.j=13;
  38.             mystr.k=1.234;
  39.  
  40.  
  41. /* PART 1
  42.     This section is ALWAYS required.
  43.     It initialises the object data system
  44. */
  45.             // startup
  46.             FuncID = 0;
  47.             status = (int)callout(StubID, FuncID, (unsigned long)Data);
  48.             Message("Initialisation", status);
  49.  
  50. /* PART 2
  51.     This section creates some data objects and fills in
  52.     some data.
  53. */
  54.  
  55.             // create an object
  56.             strcpy(c,"object3");
  57.             FuncID = 4;
  58.             Data[0] = (unsigned long)c;
  59.             status = callout(StubID, FuncID, (unsigned long)Data);
  60.             Message("Creating object3", status);
  61.  
  62.             // create a second object
  63.             strcpy(c,"object4");
  64.             FuncID = 4;
  65.             Data[0] = (unsigned long)c;
  66.             status = callout(StubID, FuncID, (unsigned long)Data);
  67.  
  68.             // store some data
  69.             strcpy(c,"object3.a");
  70.             Data[0] = (unsigned long)c;
  71.             Data[1] = (unsigned long)&mystr;
  72.             Data[2] = sizeof(mystr);
  73.             Data[3] = 0;
  74.             Data[4] = 0;
  75.             FuncID = 12;
  76.             status = callout(StubID, FuncID, (unsigned long)Data);
  77.             Message("storing data in object3.a", status);
  78.  
  79.             // re-read the user type
  80.             strcpy(c,"object3.a");
  81.             Data[0] = (unsigned long)c;
  82.             Data[1] = (unsigned long)&mystr2;
  83.             status = callout(0,11,(unsigned long)Data);
  84.             Message("Reading data from object3.a", status);
  85.  
  86.             int a = 33;
  87.             strcpy(c,"object3.b");
  88.             Data[0] = (unsigned long)c;
  89.             Data[1] = (unsigned long)&a;
  90.             Data[2] = 1;
  91.             Data[3] = 1;
  92.             Data[4] = 0;
  93.             FuncID = 8;
  94.             status = callout(StubID, FuncID, (unsigned long)Data);
  95.  
  96.             a = 44;
  97.             strcpy(c,"object4.x");
  98.             Data[0] = (unsigned long)c;
  99.             Data[1] = (unsigned long)&a;
  100.             Data[2] = 1;
  101.             Data[3] = 1;
  102.             Data[4] = 0;
  103.             FuncID = 8;
  104.             status = callout(StubID, FuncID, (unsigned long)Data);
  105.  
  106.             a = 55;
  107.             strcpy(c,"object4.y");
  108.             Data[0] = (unsigned long)c;
  109.             Data[1] = (unsigned long)&a;
  110.             Data[2] = 1;
  111.             Data[3] = 1;
  112.             Data[4] = 0;
  113.             status = callout(StubID, FuncID, (unsigned long)Data);
  114.  
  115.             // tag all objects
  116.             FuncID = 22;
  117.             status = callout(StubID, FuncID,
  118.             (unsigned long)Data);
  119.  
  120.             // save
  121.             strcpy(c,"bbb.txt");
  122.             Data[0] = (unsigned long)c;
  123.             Data[1] = 0;
  124.             Data[2] = 0;
  125.             FuncID = 18;
  126.             Message("Ready to save the data",0);
  127.             status = callout(StubID, FuncID, (unsigned long)Data);
  128.             Message("Saving data", status);
  129.  
  130. /* PART 3
  131.     Reads an already created data file
  132. */
  133.  
  134.             // read a file
  135.             strcpy(c,"bbb.txt");
  136.             Data[0] = (unsigned long)c;
  137.             Data[1] = 0;
  138.             FuncID = 19;
  139.             status = callout(StubID, FuncID, (unsigned long)Data);
  140.             Message("Reading file", status);
  141.  
  142.             // count registered objects
  143.             FuncID = 7;
  144.             status = callout(StubID, FuncID, (unsigned long)Data);
  145.             status = Data[0];
  146.             Message("Registered objects", status);
  147.  
  148. /* PART 4
  149.     Reads a data value from memory
  150. */
  151.  
  152.             // read some date
  153.             float b;
  154.             strcpy(c,"fred.b");
  155.             Data[0] = (unsigned long)c;
  156.             Data[1] = (unsigned long)&b;
  157.             Data[2] = 6;
  158.             Data[3] = 1;
  159.             Data[4] = 0;
  160.             FuncID = 10;
  161.             status = callout(StubID, FuncID, (unsigned long)Data);
  162.  
  163.             // read some date
  164.             int s;
  165.             strcpy(c,"fred.c");
  166.             Data[0] = (unsigned long)c;
  167.             Data[1] = (unsigned long)&s;
  168.             Data[2] = 2;
  169.             Data[3] = 1;
  170.             Data[4] = 0;
  171.             FuncID = 10;
  172.             status = callout(StubID, FuncID, (unsigned long)Data);
  173.  
  174. /* PART 5
  175.     This function clears up the data system.
  176.     It must always be present
  177. */
  178.             // clear up
  179.             FuncID = 1;
  180.             status = callout(StubID, FuncID,(unsigned long)Data);
  181.             Message("Shutdown", status);
  182.             return 0;
  183.  
  184. }
  185.